package com.vshining.cryptoki.jna.pkcs11t;

import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;

import java.util.Arrays;
import java.util.List;

/**
 * @author Shining Wang <shiningwang@vshining.com>
 */
@SuppressWarnings("unused")
public class CK_MECHANISM extends Structure {
    public NativeLong mechanism;
    public Pointer pParameter;
    public NativeLong ulParameterLen;

    @Override
    protected List getFieldOrder() {
        return Arrays.asList(
                "mechanism",
                "pParameter",
                "ulParameterLen"
        );
    }

    public static final long CKM_RSA_PKCS_KEY_PAIR_GEN = 0x00000000L;
    public static final long CKM_RSA_PKCS = 0x00000001L;
    public static final long CKM_RSA_9796 = 0x00000002L;
    public static final long CKM_RSA_X_509 = 0x00000003L;
    public static final long CKM_MD2_RSA_PKCS = 0x00000004L;
    public static final long CKM_MD5_RSA_PKCS = 0x00000005L;
    public static final long CKM_SHA1_RSA_PKCS = 0x00000006L;
    public static final long CKM_RIPEMD128_RSA_PKCS = 0x00000007L;
    public static final long CKM_RIPEMD160_RSA_PKCS = 0x00000008L;
    public static final long CKM_RSA_PKCS_OAEP = 0x00000009L;
    public static final long CKM_RSA_X9_31_KEY_PAIR_GEN = 0x0000000AL;
    public static final long CKM_RSA_X9_31 = 0x0000000BL;
    public static final long CKM_SHA1_RSA_X9_31 = 0x0000000CL;
    public static final long CKM_RSA_PKCS_PSS = 0x0000000DL;
    public static final long CKM_SHA1_RSA_PKCS_PSS = 0x0000000EL;
    public static final long CKM_DSA_KEY_PAIR_GEN = 0x00000010L;
    public static final long CKM_DSA = 0x00000011L;
    public static final long CKM_DSA_SHA1 = 0x00000012L;
    public static final long CKM_DH_PKCS_KEY_PAIR_GEN = 0x00000020L;
    public static final long CKM_DH_PKCS_DERIVE = 0x00000021L;
    public static final long CKM_X9_42_DH_KEY_PAIR_GEN = 0x00000030L;
    public static final long CKM_X9_42_DH_DERIVE = 0x00000031L;
    public static final long CKM_X9_42_DH_HYBRID_DERIVE = 0x00000032L;
    public static final long CKM_X9_42_MQV_DERIVE = 0x00000033L;
    public static final long CKM_SHA256_RSA_PKCS = 0x00000040L;
    public static final long CKM_SHA384_RSA_PKCS = 0x00000041L;
    public static final long CKM_SHA512_RSA_PKCS = 0x00000042L;
    public static final long CKM_SHA256_RSA_PKCS_PSS = 0x00000043L;
    public static final long CKM_SHA384_RSA_PKCS_PSS = 0x00000044L;
    public static final long CKM_SHA512_RSA_PKCS_PSS = 0x00000045L;
    public static final long CKM_SHA224_RSA_PKCS = 0x00000046L;
    public static final long CKM_SHA224_RSA_PKCS_PSS = 0x00000047L;
    public static final long CKM_RC2_KEY_GEN = 0x00000100L;
    public static final long CKM_RC2_ECB = 0x00000101L;
    public static final long CKM_RC2_CBC = 0x00000102L;
    public static final long CKM_RC2_MAC = 0x00000103L;
    public static final long CKM_RC2_MAC_GENERAL = 0x00000104L;
    public static final long CKM_RC2_CBC_PAD = 0x00000105L;
    public static final long CKM_RC4_KEY_GEN = 0x00000110L;
    public static final long CKM_RC4 = 0x00000111L;
    public static final long CKM_DES_KEY_GEN = 0x00000120L;
    public static final long CKM_DES_ECB = 0x00000121L;
    public static final long CKM_DES_CBC = 0x00000122L;
    public static final long CKM_DES_MAC = 0x00000123L;
    public static final long CKM_DES_MAC_GENERAL = 0x00000124L;
    public static final long CKM_DES_CBC_PAD = 0x00000125L;
    public static final long CKM_DES2_KEY_GEN = 0x00000130L;
    public static final long CKM_DES3_KEY_GEN = 0x00000131L;
    public static final long CKM_DES3_ECB = 0x00000132L;
    public static final long CKM_DES3_CBC = 0x00000133L;
    public static final long CKM_DES3_MAC = 0x00000134L;
    public static final long CKM_DES3_MAC_GENERAL = 0x00000135L;
    public static final long CKM_DES3_CBC_PAD = 0x00000136L;
    public static final long CKM_CDMF_KEY_GEN = 0x00000140L;
    public static final long CKM_CDMF_ECB = 0x00000141L;
    public static final long CKM_CDMF_CBC = 0x00000142L;
    public static final long CKM_CDMF_MAC = 0x00000143L;
    public static final long CKM_CDMF_MAC_GENERAL = 0x00000144L;
    public static final long CKM_CDMF_CBC_PAD = 0x00000145L;
    public static final long CKM_DES_OFB64 = 0x00000150L;
    public static final long CKM_DES_OFB8 = 0x00000151L;
    public static final long CKM_DES_CFB64 = 0x00000152L;
    public static final long CKM_DES_CFB8 = 0x00000153L;
    public static final long CKM_MD2 = 0x00000200L;
    public static final long CKM_MD2_HMAC = 0x00000201L;
    public static final long CKM_MD2_HMAC_GENERAL = 0x00000202L;
    public static final long CKM_MD5 = 0x00000210L;
    public static final long CKM_MD5_HMAC = 0x00000211L;
    public static final long CKM_MD5_HMAC_GENERAL = 0x00000212L;
    public static final long CKM_SHA_1 = 0x00000220L;
    public static final long CKM_SHA_1_HMAC = 0x00000221L;
    public static final long CKM_SHA_1_HMAC_GENERAL = 0x00000222L;
    public static final long CKM_RIPEMD128 = 0x00000230L;
    public static final long CKM_RIPEMD128_HMAC = 0x00000231L;
    public static final long CKM_RIPEMD128_HMAC_GENERAL = 0x00000232L;
    public static final long CKM_RIPEMD160 = 0x00000240L;
    public static final long CKM_RIPEMD160_HMAC = 0x00000241L;
    public static final long CKM_RIPEMD160_HMAC_GENERAL = 0x00000242L;
    public static final long CKM_SHA256 = 0x00000250L;
    public static final long CKM_SHA256_HMAC = 0x00000251L;
    public static final long CKM_SHA256_HMAC_GENERAL = 0x00000252L;
    public static final long CKM_SHA224 = 0x00000255L;
    public static final long CKM_SHA224_HMAC = 0x00000256L;
    public static final long CKM_SHA224_HMAC_GENERAL = 0x00000257L;
    public static final long CKM_SHA384 = 0x00000260L;
    public static final long CKM_SHA384_HMAC = 0x00000261L;
    public static final long CKM_SHA384_HMAC_GENERAL = 0x00000262L;
    public static final long CKM_SHA512 = 0x00000270L;
    public static final long CKM_SHA512_HMAC = 0x00000271L;
    public static final long CKM_SHA512_HMAC_GENERAL = 0x00000272L;
    public static final long CKM_SECURID_KEY_GEN = 0x00000280L;
    public static final long CKM_SECURID = 0x00000282L;
    public static final long CKM_HOTP_KEY_GEN = 0x00000290L;
    public static final long CKM_HOTP = 0x00000291L;
    public static final long CKM_ACTI = 0x000002A0L;
    public static final long CKM_ACTI_KEY_GEN = 0x000002A1L;
    public static final long CKM_CAST_KEY_GEN = 0x00000300L;
    public static final long CKM_CAST_ECB = 0x00000301L;
    public static final long CKM_CAST_CBC = 0x00000302L;
    public static final long CKM_CAST_MAC = 0x00000303L;
    public static final long CKM_CAST_MAC_GENERAL = 0x00000304L;
    public static final long CKM_CAST_CBC_PAD = 0x00000305L;
    public static final long CKM_CAST3_KEY_GEN = 0x00000310L;
    public static final long CKM_CAST3_ECB = 0x00000311L;
    public static final long CKM_CAST3_CBC = 0x00000312L;
    public static final long CKM_CAST3_MAC = 0x00000313L;
    public static final long CKM_CAST3_MAC_GENERAL = 0x00000314L;
    public static final long CKM_CAST3_CBC_PAD = 0x00000315L;
    public static final long CKM_CAST5_KEY_GEN = 0x00000320L;
    public static final long CKM_CAST128_KEY_GEN = 0x00000320L;
    public static final long CKM_CAST5_ECB = 0x00000321L;
    public static final long CKM_CAST128_ECB = 0x00000321L;
    public static final long CKM_CAST5_CBC = 0x00000322L;
    public static final long CKM_CAST128_CBC = 0x00000322L;
    public static final long CKM_CAST5_MAC = 0x00000323L;
    public static final long CKM_CAST128_MAC = 0x00000323L;
    public static final long CKM_CAST5_MAC_GENERAL = 0x00000324L;
    public static final long CKM_CAST128_MAC_GENERAL = 0x00000324L;
    public static final long CKM_CAST5_CBC_PAD = 0x00000325L;
    public static final long CKM_CAST128_CBC_PAD = 0x00000325L;
    public static final long CKM_RC5_KEY_GEN = 0x00000330L;
    public static final long CKM_RC5_ECB = 0x00000331L;
    public static final long CKM_RC5_CBC = 0x00000332L;
    public static final long CKM_RC5_MAC = 0x00000333L;
    public static final long CKM_RC5_MAC_GENERAL = 0x00000334L;
    public static final long CKM_RC5_CBC_PAD = 0x00000335L;
    public static final long CKM_IDEA_KEY_GEN = 0x00000340L;
    public static final long CKM_IDEA_ECB = 0x00000341L;
    public static final long CKM_IDEA_CBC = 0x00000342L;
    public static final long CKM_IDEA_MAC = 0x00000343L;
    public static final long CKM_IDEA_MAC_GENERAL = 0x00000344L;
    public static final long CKM_IDEA_CBC_PAD = 0x00000345L;
    public static final long CKM_GENERIC_SECRET_KEY_GEN = 0x00000350L;
    public static final long CKM_CONCATENATE_BASE_AND_KEY = 0x00000360L;
    public static final long CKM_CONCATENATE_BASE_AND_DATA = 0x00000362L;
    public static final long CKM_CONCATENATE_DATA_AND_BASE = 0x00000363L;
    public static final long CKM_XOR_BASE_AND_DATA = 0x00000364L;
    public static final long CKM_EXTRACT_KEY_FROM_KEY = 0x00000365L;
    public static final long CKM_SSL3_PRE_MASTER_KEY_GEN = 0x00000370L;
    public static final long CKM_SSL3_MASTER_KEY_DERIVE = 0x00000371L;
    public static final long CKM_SSL3_KEY_AND_MAC_DERIVE = 0x00000372L;
    public static final long CKM_SSL3_MASTER_KEY_DERIVE_DH = 0x00000373L;
    public static final long CKM_TLS_PRE_MASTER_KEY_GEN = 0x00000374L;
    public static final long CKM_TLS_MASTER_KEY_DERIVE = 0x00000375L;
    public static final long CKM_TLS_KEY_AND_MAC_DERIVE = 0x00000376L;
    public static final long CKM_TLS_MASTER_KEY_DERIVE_DH = 0x00000377L;
    public static final long CKM_TLS_PRF = 0x00000378L;
    public static final long CKM_SSL3_MD5_MAC = 0x00000380L;
    public static final long CKM_SSL3_SHA1_MAC = 0x00000381L;
    public static final long CKM_MD5_KEY_DERIVATION = 0x00000390L;
    public static final long CKM_MD2_KEY_DERIVATION = 0x00000391L;
    public static final long CKM_SHA1_KEY_DERIVATION = 0x00000392L;
    public static final long CKM_SHA256_KEY_DERIVATION = 0x00000393L;
    public static final long CKM_SHA384_KEY_DERIVATION = 0x00000394L;
    public static final long CKM_SHA512_KEY_DERIVATION = 0x00000395L;
    public static final long CKM_SHA224_KEY_DERIVATION = 0x00000396L;
    public static final long CKM_PBE_MD2_DES_CBC = 0x000003A0L;
    public static final long CKM_PBE_MD5_DES_CBC = 0x000003A1L;
    public static final long CKM_PBE_MD5_CAST_CBC = 0x000003A2L;
    public static final long CKM_PBE_MD5_CAST3_CBC = 0x000003A3L;
    public static final long CKM_PBE_MD5_CAST5_CBC = 0x000003A4L;
    public static final long CKM_PBE_MD5_CAST128_CBC = 0x000003A4L;
    public static final long CKM_PBE_SHA1_CAST5_CBC = 0x000003A5L;
    public static final long CKM_PBE_SHA1_CAST128_CBC = 0x000003A5L;
    public static final long CKM_PBE_SHA1_RC4_128 = 0x000003A6L;
    public static final long CKM_PBE_SHA1_RC4_40 = 0x000003A7L;
    public static final long CKM_PBE_SHA1_DES3_EDE_CBC = 0x000003A8L;
    public static final long CKM_PBE_SHA1_DES2_EDE_CBC = 0x000003A9L;
    public static final long CKM_PBE_SHA1_RC2_128_CBC = 0x000003AAL;
    public static final long CKM_PBE_SHA1_RC2_40_CBC = 0x000003ABL;
    public static final long CKM_PKCS5_PBKD2 = 0x000003B0L;
    public static final long CKM_PBA_SHA1_WITH_SHA1_HMAC = 0x000003C0L;
    public static final long CKM_WTLS_PRE_MASTER_KEY_GEN = 0x000003D0L;
    public static final long CKM_WTLS_MASTER_KEY_DERIVE = 0x000003D1L;
    public static final long CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC = 0x000003D2L;
    public static final long CKM_WTLS_PRF = 0x000003D3L;
    public static final long CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE = 0x000003D4L;
    public static final long CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE = 0x000003D5L;
    public static final long CKM_KEY_WRAP_LYNKS = 0x00000400L;
    public static final long CKM_KEY_WRAP_SET_OAEP = 0x00000401L;
    public static final long CKM_CMS_SIG = 0x00000500L;
    public static final long CKM_KIP_DERIVE = 0x00000510L;
    public static final long CKM_KIP_WRAP = 0x00000511L;
    public static final long CKM_KIP_MAC = 0x00000512L;
    public static final long CKM_CAMELLIA_KEY_GEN = 0x00000550L;
    public static final long CKM_CAMELLIA_ECB = 0x00000551L;
    public static final long CKM_CAMELLIA_CBC = 0x00000552L;
    public static final long CKM_CAMELLIA_MAC = 0x00000553L;
    public static final long CKM_CAMELLIA_MAC_GENERAL = 0x00000554L;
    public static final long CKM_CAMELLIA_CBC_PAD = 0x00000555L;
    public static final long CKM_CAMELLIA_ECB_ENCRYPT_DATA = 0x00000556L;
    public static final long CKM_CAMELLIA_CBC_ENCRYPT_DATA = 0x00000557L;
    public static final long CKM_CAMELLIA_CTR = 0x00000558L;
    public static final long CKM_ARIA_KEY_GEN = 0x00000560L;
    public static final long CKM_ARIA_ECB = 0x00000561L;
    public static final long CKM_ARIA_CBC = 0x00000562L;
    public static final long CKM_ARIA_MAC = 0x00000563L;
    public static final long CKM_ARIA_MAC_GENERAL = 0x00000564L;
    public static final long CKM_ARIA_CBC_PAD = 0x00000565L;
    public static final long CKM_ARIA_ECB_ENCRYPT_DATA = 0x00000566L;
    public static final long CKM_ARIA_CBC_ENCRYPT_DATA = 0x00000567L;
    public static final long CKM_SKIPJACK_KEY_GEN = 0x00001000L;
    public static final long CKM_SKIPJACK_ECB64 = 0x00001001L;
    public static final long CKM_SKIPJACK_CBC64 = 0x00001002L;
    public static final long CKM_SKIPJACK_OFB64 = 0x00001003L;
    public static final long CKM_SKIPJACK_CFB64 = 0x00001004L;
    public static final long CKM_SKIPJACK_CFB32 = 0x00001005L;
    public static final long CKM_SKIPJACK_CFB16 = 0x00001006L;
    public static final long CKM_SKIPJACK_CFB8 = 0x00001007L;
    public static final long CKM_SKIPJACK_WRAP = 0x00001008L;
    public static final long CKM_SKIPJACK_PRIVATE_WRAP = 0x00001009L;
    public static final long CKM_SKIPJACK_RELAYX = 0x0000100aL;
    public static final long CKM_KEA_KEY_PAIR_GEN = 0x00001010L;
    public static final long CKM_KEA_KEY_DERIVE = 0x00001011L;
    public static final long CKM_FORTEZZA_TIMESTAMP = 0x00001020L;
    public static final long CKM_BATON_KEY_GEN = 0x00001030L;
    public static final long CKM_BATON_ECB128 = 0x00001031L;
    public static final long CKM_BATON_ECB96 = 0x00001032L;
    public static final long CKM_BATON_CBC128 = 0x00001033L;
    public static final long CKM_BATON_COUNTER = 0x00001034L;
    public static final long CKM_BATON_SHUFFLE = 0x00001035L;
    public static final long CKM_BATON_WRAP = 0x00001036L;
    public static final long CKM_ECDSA_KEY_PAIR_GEN = 0x00001040L;
    public static final long CKM_EC_KEY_PAIR_GEN = 0x00001040L;
    public static final long CKM_ECDSA = 0x00001041L;
    public static final long CKM_ECDSA_SHA1 = 0x00001042L;
    public static final long CKM_ECDH1_DERIVE = 0x00001050L;
    public static final long CKM_ECDH1_COFACTOR_DERIVE = 0x00001051L;
    public static final long CKM_ECMQV_DERIVE = 0x00001052L;
    public static final long CKM_JUNIPER_KEY_GEN = 0x00001060L;
    public static final long CKM_JUNIPER_ECB128 = 0x00001061L;
    public static final long CKM_JUNIPER_CBC128 = 0x00001062L;
    public static final long CKM_JUNIPER_COUNTER = 0x00001063L;
    public static final long CKM_JUNIPER_SHUFFLE = 0x00001064L;
    public static final long CKM_JUNIPER_WRAP = 0x00001065L;
    public static final long CKM_FASTHASH = 0x00001070L;
    public static final long CKM_AES_KEY_GEN = 0x00001080L;
    public static final long CKM_AES_ECB = 0x00001081L;
    public static final long CKM_AES_CBC = 0x00001082L;
    public static final long CKM_AES_MAC = 0x00001083L;
    public static final long CKM_AES_MAC_GENERAL = 0x00001084L;
    public static final long CKM_AES_CBC_PAD = 0x00001085L;
    public static final long CKM_AES_CTR = 0x00001086L;
    public static final long CKM_BLOWFISH_KEY_GEN = 0x00001090L;
    public static final long CKM_BLOWFISH_CBC = 0x00001091L;
    public static final long CKM_TWOFISH_KEY_GEN = 0x00001092L;
    public static final long CKM_TWOFISH_CBC = 0x00001093L;
    public static final long CKM_DES_ECB_ENCRYPT_DATA = 0x00001100L;
    public static final long CKM_DES_CBC_ENCRYPT_DATA = 0x00001101L;
    public static final long CKM_DES3_ECB_ENCRYPT_DATA = 0x00001102L;
    public static final long CKM_DES3_CBC_ENCRYPT_DATA = 0x00001103L;
    public static final long CKM_AES_ECB_ENCRYPT_DATA = 0x00001104L;
    public static final long CKM_AES_CBC_ENCRYPT_DATA = 0x00001105L;
    public static final long CKM_DSA_PARAMETER_GEN = 0x00002000L;
    public static final long CKM_DH_PKCS_PARAMETER_GEN = 0x00002001L;
    public static final long CKM_X9_42_DH_PARAMETER_GEN = 0x00002002L;
    public static final long CKM_VENDOR_DEFINED = 0x80000000L;

}
